package com.kou.backend.api.file;

import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.io.IOException;

/**
 * @author: kou
 * @since: 2025/7/9 17:42
 */
@Tag(name = "文件操作（预览下载）相关接口")
@RequestMapping("v1/api/file-preview")
@Validated
public interface FilePreviewClient {
    /**
     * 文件预览(自动)
     * •	图片（jpg/png/webp/svg）
     * •	PDF（大部分浏览器内置 PDF Viewer）
     * •	文本（txt, md, log）
     */
    @GetMapping("/auto-preview")
    void autoPreview(String fileId, HttpServletResponse response) throws IOException;

    /**
     * 文件预览
     * •	图片（jpg/png/webp/svg）
     * •	PDF（大部分浏览器内置 PDF Viewer）
     * •	文本（txt, md, log）
     */
    @GetMapping("/preview")
    void preview(String fileId, HttpServletResponse response) throws IOException;

    /**
     * 文件流下载
     */
    @GetMapping("/download")
    void download(String fileId, HttpServletResponse response) throws IOException;
}
